<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>弹性照片墙</title>
    <style>
        html {
            box-sizing: border-box;
            background: #ffc600;
            font-family: 'helvetica neue';
            font-size: 20px;
            font-weight: 200;
        }
        body {
            margin: 0;
        }
        *, *::before, *::after {
            /*  inherit: 规定应从父元素继承 box-sizing 属性的值。 */
            box-sizing: inherit;
        }
        .panels {
            min-height: 100vh;
            overflow: hidden;
            display: flex;
        }
        .panel {
            background: #6b0f9c;
            box-shadow: inset 0 0 0 5px rgba(255, 255, 255, 0.1);
            color: white;
            text-align: center;
            align-items: center;
            transition: 
                /* font-size---指针对font-size的动态变化  
                可选 cubic-bezier(n, n, n, n)：在 bezier 函数中自定义 0 ~ 1 之间的数值。
                在使用复合属性定义过渡效果时，子属性之间用空格分隔*/
                font-size 0.7s cubic-bezier(0.61,-0.19,0.7,-0.11),
                flex 0.7s cubic-bezier(0.61,-0.19,0.7,-0.11),
                background 0.2s;
            font-size: 10px;
            background-size: cover;
            background-position: center;
            flex: 1;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }

        .panel1 { background-image: url('./img/flowerCat.jpg');}
        .panel2 { background-image: url('./img/flowerCat.jpg');}
        .panel3 { background-image: url('./img/flowerCat.jpg');}
        .panel4 { background-image: url('./img/flowerCat.jpg');}
        .panel5 { background-image: url('./img/flowerCat.jpg');}

        .panel > * {
            margin: 0;
            width: 100%;
            /* transform 转换 改变所在元素的外观*/
            transition: transform 0.5s;
            flex: 1;
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .panel >*:first-child {
            transform: translateY(-100%);
        }
        .panel >*:last-child {
            transform: translateY(100%);
        }
        .panel p {
            /* uppercase:定义仅有大写字母。 */
            text-transform: uppercase;
            font-family: 'Amatic SC', cursive;
            text-shadow: 0 0 4px rgba(0, 0, 0, 0.72), 0 0 14px rgba(0, 0, 0, 0.45) ;
            font-size: 2em;
        }
        .panel p:nth-child(2) {
            font-size: 4em;
        }
        .panel.open {
            font-size: 25px;
            flex: 35;
        }
        .panel.open-active > * {
             /*translateY: 只向Y轴进行移动，基点在元素心点  */
            transform: translateY(0);
        }
    </style>
</head>
<body>
    <div class="panels">
        <div class="panel panel1">
            <p>Hey</p>
            <p>Let's</p>
            <p>Dance</p>
        </div>
        <div class="panel panel2">
            <p>Give</p>
            <p>Take</p>
            <p>Receive</p>
        </div>
        <div class="panel panel3">
            <p>Experience</p>
            <p>It</p>
            <p>Today</p>
        </div>
        <div class="panel panel4">
            <p>Give</p>
            <p>All</p>
            <p>You can</p>
        </div>
        <div class="panel panel5">
            <p>Life</p>
            <p>In</p>
            <p>MOTION</p>
        </div>
    </div>

    <script>

        const panels = document.querySelectorAll('.panel')

        function toggleOpen() {
            // console.log(this);
            this.classList.toggle('open')
        }
        function toggleActive(e) {
            // console.log(e.propertyName);
            if(e.propertyName.includes('flex')){
                this.classList.toggle('open-active')
            }
        }

        panels.forEach(panel => panel.addEventListener('click',toggleOpen));

        panels.forEach(panel => panel.addEventListener('transitionend',toggleActive));
    </script>
</body>
</html>